#include "filecontrol.h"

FileControl::FileControl(QWidget *parent)
{

}

QStringList FileControl::findMediaFile_Music()
{
    //不用这个类
    //QFile list = new QFile;
    //生成此路径的文件目录
    QDir * dir = new QDir(_Dirctor);
    //文件过滤器
    QStringList filters;
    filters<<"*.mp3";
    //设定过滤器
    dir->setNameFilters(filters);
    //所有音频文件
    QStringList mp3name;
    mp3name = dir->entryList();//将目录所有符合条件的文件名存入字符串组
    return mp3name;
}

/*
 * 函数：FTP进程函数
 * 功能：在每次访问FTP服务器前使用该函数连接并关闭连接
 *
*/
void FileControl::FTP_Process(void)
{
    QStringList test;
    test<<"123"<<"456"<<"mp3";
    ftp = new QFtp(this);
    ftp->connectToHost(host,port);
    ftp->login(userName,passWord);
    ftp->cd(FTP_musicPath);
    ftp->list();
    ftp->close();
    connect(ftp,SIGNAL(listInfo(QUrlInfo)),this,SLOT(FTP_findMediaFile_Music(QUrlInfo)));
    connect(ftp,SIGNAL(commandFinished(int,bool)),this,SLOT(FTPCommandFinished(int,bool)));
}

/*
 * 槽函数：命令结束槽函数
 * 功能：FTP命令结束后，获取下一步动作，主要是进行列表显示
 * 只有这里才可以进行列表读取
*/
void FileControl::FTPCommandFinished(int,bool error)
{
    int id = ftp->currentCommand();
    if(id == QFtp::Close)
        emit isFinished(FTP_mediaName);
}


/*
 * 函数：查找FTP上的音频文件
 * 返回值：字符串数组，包含所有音频文件
 * 此函数会多次被调用，意思是每次调用读取一个文件
*/
void FileControl::FTP_findMediaFile_Music(const QUrlInfo &urlInfo)
{
    //通过toLatin1()函数将QString转成QByteArray，再进行GBK编码
    QByteArray name = urlInfo.name().toLatin1();
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
    QString string = codec->toUnicode(name);
    qDebug()<<string;
    FTP_mediaName<<string;
}

/**
 * @brief FileControl::setDirctor
 * @param dirctor
 */
void FileControl::setDirctor(QString dirctor)
{
    _Dirctor = dirctor;
}

/**
 * @brief FileControl::getDirctor
 * @return
 */
QString FileControl::getDirctor(void)
{
    return _Dirctor;
}

QStringList FileControl::get_FTP_fileList()
{
    return this->FTP_mediaName;
}

void FileControl::setFTPParameter(QString FTP_host, int FTP_port, QString FTP_userName, QString FTP_password, QString FTP_path)
{
   host = FTP_host;
   port = FTP_port;
   userName = FTP_userName;
   passWord = FTP_password;
   FTP_musicPath = FTP_path;
}
//不要分号
